home *** CD-ROM | disk | FTP | other *** search
- PAGE
- PAGE 72,120
- TITLE SUPEREN Change name of file, sub-dir or vol ID.
-
-
- COMMENT " SUPEREN [d:]name1 name2
- Renames files or subdirectories from name 1 to name2.
- Name1 & name2 may have extensions and wild characters.
- Action of the program is as described in the DOS manual
- for INT 21, function 17.
- "
- COM SEGMENT
- ASSUME CS:COM, DS:COM, ES:COM, SS:COM
-
- ORG 5CH ;FCB FORMED FROM NAME1
- FCB1 LABEL BYTE
- DRIVE1 DB ?
- NAME1 DB 11 DUP(?)
-
- ORG 6CH ;FCB FORMED FROM NAME2
- FCB2 LABEL BYTE
- DRIVE2 DB ?
- NAME2 DB 11 DUP(?)
-
- ORG 100H
- SUPEREN PROC
- MOV DX,OFFSET INVDR$ ;POINT TO ERROR MESSAGE
- TEST AL,AL ;TEST FOR VALID DRIVE1 ID
- JNZ ERROR
- MOV DX,OFFSET INVPAR$
- CMP NAME1,' ' ;CHECK IF NAME1 IS THERE
- JE ERROR
- CMP NAME2,' ' ;CHECK FOR NAME 2
- JE ERROR
-
- MOV SI,OFFSET FCB1 ;POINT TO NAME1 FCB
- MOV DI,OFFSET OLDN ;POINT TO OLD NAME FIELD
- MOV CX,12 ;MOVE 12 BYTES
- REP MOVSB ;MOVE NAME1 TO EXTENDED FCB
- MOV SI,OFFSET NAME2 ;POINT TO NAME2, NOT DRIVE
- MOV DI,OFFSET OLDN+11H ;POINT TO NEW NAME FIELD
- MOV CX,11 ;NAME EX DRIVE = 11 BYTES
- REP MOVSB ;MOVE NAME2 TO EXTENDED FCB
-
- MOV DX,OFFSET XFCB ;POINT DX TO EXTENDED FCB
- MOV AH,17H ;FUNCTION 17 = RENAME
- INT 21H
-
- TEST AL,AL ;TEST FOR ERRORS
- JZ EXIT ;NO ERRORS IF AL = 0
- MOV DX,OFFSET INVNAM$ ;ELSE POINT TO ERROR MSG
- ERROR: MOV AH,9 ;DISPLAY ERROR MESSAGE
- INT 21H
- EXIT: INT 20H ;RETURN TO DOS
- SUPEREN ENDP
-
- INVDR$ DB 0DH,0AH,'Invalid drive id$',0DH,0AH,'$'
- INVPAR$ DB 0DH,0AH,'2 params needed: [d:]oldname, newname'
-
- DB 0DH,0AH,'$'
- INVNAM$ DB 0DH,0AH,'Name not found or already exists'
- DB 0DH,0AH,'$'
-
- XFCB DB 0FFH ;EXTENDED FCB ID BYTE
- DB 5 DUP(0)
- ATTR DB 18H ;ATTR FOR SUB-DIRS & VOL LABELS
- OLDN DB 37 DUP(0) ;OLD & NEW NAMES GO HERE
-
- COM ENDS
- END SUPEREN